﻿using FreeSql;
namespace Framework.FreeSqlClient.Attribute
{
    /// <summary>
    /// IFreeSql自动注入特性
    /// </summary>
    /// <remarks>
    /// <para>会自动检索使用当前特性的接口，并自动注入</para>
    /// <para>注意：注入时会根据this.DBConnection自动检索配置文件中的DBConfig配置项，如果在配置文件中不存在则直接使用this.DBConnection作为连接字符串</para>
    /// </remarks>
    [AttributeUsage(AttributeTargets.Interface)]
    internal class InjectionFreeSqlAttribute : System.Attribute
    {
        /// <summary>
        /// IFreeSql自动注入特性
        /// </summary>
        /// <param name="dbConnection">数据库连接字符串</param>
        /// <param name="dataType">数据库类型<para>项目中需要安装DataType对应的包（使用哪个安装哪个）</para><para>如使用了未安装Nugit包则服务不能成功注入</para></param>
        public InjectionFreeSqlAttribute(string dbConnection, DataType dataType)
        {
            DBConnection = dbConnection;
            DataType = dataType;
        }
        /// <summary>
        /// 数据库连接字符串
        /// </summary>
        public string DBConnection { get; set; }
        /// <summary>
        /// 数据库类型
        /// </summary>
        public DataType DataType { get; set; }
    }
}
